/**
 * PEYCASH 2014 - DERECHOS RESERVADOS
 */
package com.peycash.common.dto;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.peycash.common.EstatusCliente;
import com.peycash.common.TipoCliente;
import com.peycash.util.FechaUtil;

/**
 * DTO para representar el cliente
 * 
 * @author Jorge Amaro Coria
 * @version 1.0
 * @since 1.0
 *
 */
public class ClienteDTO implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private String noCel;
	private EstatusCliente estatus;
	private String estatusString;
	private TipoCliente tipoCliente;
	private String tipoClienteString;
	private String fecha;
	private String fechaUltimaLlamadaString;
	private Date fechaUsoServicio;
	private Date fechaUltimaLlamada;
	private BigDecimal idCliente;
	private String estatusRegistro;
	private boolean enabled;
	private Integer llamadas;
	private boolean prioridad1;
	private boolean prioridad2;
	private boolean prioridad3;
	
	/* Getters & Setters*/
	
	public String getNoCel() {
		return noCel;
	}
	public void setNoCel(String noCel) {
		this.noCel = noCel;
	}
	public EstatusCliente getEstatus() {
		return estatus;
	}
	public void setEstatus(EstatusCliente estatus) {
		this.estatus = estatus;
	}
	public TipoCliente getTipoCliente() {
		return tipoCliente;
	}
	public void setTipoCliente(TipoCliente tipoCliente) {
		this.tipoCliente = tipoCliente;
	}
	public String getFecha() {
		fecha = FechaUtil.getInstance().parseDateMM_dd_yy_hh_mm_ss(fechaUsoServicio);
		return fecha;
	}
	public void setFecha(String fecha) {
		this.fecha = fecha;
	}
	public Date getFechaUsoServicio() {
		return fechaUsoServicio;
	}
	public void setFechaUsoServicio(Date fechaUsoServicio) {
		this.fechaUsoServicio = fechaUsoServicio;
	}
	public Date getFechaUltimaLlamada() {
		return fechaUltimaLlamada;
	}
	public void setFechaUltimaLlamada(Date fechaUltimaLlamada) {
		this.fechaUltimaLlamada = fechaUltimaLlamada;
	}
	public String getFechaUltimaLlamadaString() {
		fechaUltimaLlamadaString = FechaUtil.getInstance().parseDateMM_dd_yy_hh_mm_ss(fechaUltimaLlamada);
		return fechaUltimaLlamadaString;
	}
	public void setFechaUltimaLlamadaString(String fechaUltimaLlamadaString) {
		this.fechaUltimaLlamadaString = fechaUltimaLlamadaString;
	}
	public BigDecimal getIdCliente() {
		return idCliente;
	}
	public void setIdCliente(BigDecimal idCliente) {
		this.idCliente = idCliente;
	}
	public String getEstatusString() {
		estatusString = estatus.getNombreEstatus();
		return estatusString;
	}
	public void setEstatusString(String estatusString) {
		this.estatusString = estatusString;
	}
	public String getTipoClienteString() {
		if(tipoCliente == null){
			tipoCliente = TipoCliente.ENVIA;
		}
		tipoClienteString = tipoCliente.getTipo();
		return tipoClienteString;
	}
	public void setTipoClienteString(String tipoClienteString) {
		this.tipoClienteString = tipoClienteString;
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((idCliente == null) ? 0 : idCliente.hashCode());
		result = prime * result + ((noCel == null) ? 0 : noCel.hashCode());
		return result;
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		ClienteDTO other = (ClienteDTO) obj;
		if (idCliente == null) {
			if (other.idCliente != null)
				return false;
		} else if (!idCliente.equals(other.idCliente))
			return false;
		if (noCel == null) {
			if (other.noCel != null)
				return false;
		} else if (!noCel.equals(other.noCel))
			return false;
		return true;
	}
	/**
	 * @return the estatusRegistro
	 */
	public String getEstatusRegistro() {
		return estatusRegistro;
	}
	/**
	 * @param estatusRegistro the estatusRegistro to set
	 */
	public void setEstatusRegistro(String estatusRegistro) {
		this.estatusRegistro = estatusRegistro;
	}
	/**
	 * @return the enabled
	 */
	public boolean isEnabled() {
		return enabled;
	}
	/**
	 * @param enabled the enabled to set
	 */
	public void setEnabled(boolean enabled) {
		this.enabled = enabled;
	}
	/**
	 * @return the llamadas
	 */
	public Integer getLlamadas() {
		return llamadas;
	}
	/**
	 * @param llamadas the llamadas to set
	 */
	public void setLlamadas(Integer llamadas) {
		this.llamadas = llamadas;
	}
	/**
	 * @return the prioridad1
	 */
	public boolean isPrioridad1() {
		if(llamadas == null){
			prioridad1 =  true;
		}else if(llamadas <=1){
			prioridad1 =  true;
		}
		return prioridad1;
	}
	/**
	 * @param prioridad1 the prioridad1 to set
	 */
	public void setPrioridad1(boolean prioridad1) {
		this.prioridad1 = prioridad1;
	}
	/**
	 * @return the prioridad2
	 */
	public boolean isPrioridad2() {
		if(llamadas == null){
			prioridad2 = false;
		}else if(llamadas > 1 && llamadas <=5){
			prioridad2 = true;
		}
		return prioridad2;
	}
	/**
	 * @param prioridad2 the prioridad2 to set
	 */
	public void setPrioridad2(boolean prioridad2) {
		this.prioridad2 = prioridad2;
	}
	/**
	 * @return the prioridad3
	 */
	public boolean isPrioridad3() {
		if(llamadas == null){
			prioridad3 = false;
		}else if(llamadas > 5){
			prioridad3 = true;
		}
		return prioridad3;
	}
	/**
	 * @param prioridad3 the prioridad3 to set
	 */
	public void setPrioridad3(boolean prioridad3) {
		this.prioridad3 = prioridad3;
	}
	
	
}
